#include "config.h"
#include <string.h>
#include <stdint.h>
#include <stdio.h>


int32_t loadConfig(char *address,char *config){
	FILE *archivo;
	char *buffer, *parametro;


	buffer = malloc(sizeof(char)*200);
	parametro = malloc(sizeof(char)*200);


	 archivo = fopen(config, "r");

	if (archivo == NULL) /*controlo que abrio el archivo*/
	{
		//loguear("Configuracion",GetCurrentProcessId(),GetCurrentThreadId(),GetProcessHeap(),2,"Archivo no encontrado","");
		printf("Error al abrir el archivo de configuracion \n");
		return 0;
	}
	//printf("empiezo a leer\n");
	while(!feof(archivo))
	{
		fgets(buffer,200,archivo);
		strcpy(parametro,parametroEnLinea(buffer));
		//printf("%s %s",parametro,buffer);
		if(strcmp(parametro,"address") == 0)
		{
			strcpy(address,valorLinea(buffer));
			address[posicionCharEnCadena(address,'\n')]='\0';
			printf("address = %s \n",address);
		}
		else if(strcmp(parametro,"EOF") == 0)
		{

			fclose (archivo);
			free (buffer);
			free(parametro);
			break;

		}
	}

	return 1;

}


char *parametroEnLinea(char *cadena) /*DEVUELVE UNA CADENA CON EL PARAMETRO DEL CONFIG */
{
	char *aux;

	aux=cadena;
	aux[posicionCharEnCadena(aux,'=')]='\0';

	return aux;
}



char *valorLinea(char *cadena) /*DEVUELVE UNA CADENA CON LOS CARACTERES DESPUES DEL '=' */
{
	while(*cadena!='=' && *cadena!='\0')
	{
		cadena++;
	}
	cadena++;

	return cadena;
}


int32_t posicionCharEnCadena(char *cadena, const char caracter) /*DEVUELVE UN INTEGER CON LA CANTIDAD DE CARACTERES antes  DEL SEP */
{
	int32_t cont=0;
	while(*cadena!=caracter)
	{
		cont++;
		cadena++;
	}
	return cont;
}
